#ifndef __BSP_LED_H
#define __BSP_LED_H

#include <stdint.h>
#include <stdio.h>
#include "main.h"
#include "cmsis_os.h"
#include "queue.h"

#include "stm32f4xx_hal.h"
#include "stm32f4xx_hal_gpio.h"
#include "Com_Debug.h"

typedef enum
{
  LED_OK                = 0,           /* Operation completed successfully.  */
  LED_ERROR             = 1,           /* Run-time error without case matched*/
  LED_ERRORTIMEOUT      = 2,           /* Operation failed with timeout      */
  LED_ERRORRESOURCE     = 3,           /* Resource not available.            */
  LED_ERRORPARAMETER    = 4,           /* Parameter error.                   */
  LED_ERRORNOMEMORY     = 5,           /* Out of memory.                     */
  LED_ERRORISR          = 6,           /* Not allowed in ISR context         */
  LED_RESERVED          = 0x7FFFFFFF   /* Reserved                           */
} led_status_t;

typedef enum
{
  LED_ON                = 0,           /* Operation completed successfully.  */
  LED_OFF               = 1,           /* Operation completed successfully.  */
  LED_TOGGLE            = 2,           /* Operation completed successfully.  */
} led_operation_t;





void led_task_func(void *argument);



led_status_t led_on_off(led_operation_t led_operation);

#endif 